/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.vista.implementaciones;

import desarrollosoft.ghce.vista.interfaces.Cambiable;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Window;

/**
 *
 * @author ariel
 */
public class ControladoraPantallaPrincipalAdministrador extends SelectorComposer<Window> implements Cambiable {

    private Component referencia;
    
    @Wire
    private Window ventanaPrincipal;
    
    @Override
    public void doAfterCompose(Window comp) throws Exception {
        super.doAfterCompose(comp);
    }
    
    @Listen("onClick = #menuitemAdministrarUsuarios")
    public void clickMenuItemAdministrarUsuarios() {
        cambiar("AdministracionProfesionales.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarPlantillas")
    public void clickMenuItemAdministrarPlantillas() {
        cambiar("AdministracionPlantillasEstudios.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarEspecialidades")
    public void clickMenuItemAdministrarEspecialidades() {
        cambiar("AdministracionEspecialidades.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarDiagnosticos")
    public void clickMenuItemAdministrarDiagnosticos() {
        cambiar("AdministracionDiagnosticos.zul");
    }

    @Listen("onClick = #menuitemAdministrarMedicamentos")
    public void clickMenuItemAdministrarMedicamentos() {
        cambiar("AdministracionMedicamentos.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarCirugias")
    public void clickMenuItemAdministrarCirugias() {
        cambiar("AdministracionPrestaciones.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarUnidadMedida")
    public void clickMenuItemAdministrarUnidadMedida() {
        cambiar("AdministracionUnidadMedida.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarAspectos")
    public void clickMenuItemAdministrarAspectos() {
        cambiar("AdministracionAspectos.zul");
    }
    
    @Listen("onClick = #menuitemAdministrarGruposEtarios")
    public void clickMenuItemAdministrarGruposEtarios() {
        cambiar("AdministracionGruposEtarios.zul");
    }
    
    @Override
    public void cambiar(String nuevoZul) {
        Map<String,Object> mapaArgumentos = new HashMap(); // creo mapa con este controlador como argumento
        mapaArgumentos.put("controladoraPrincipal", this);
        if (referencia != null) {
            ventanaPrincipal.removeChild(referencia); // saco la referencia anterior (borro contenido anterior)
        }
        referencia = Executions.createComponents(nuevoZul, null, mapaArgumentos);
        ventanaPrincipal.appendChild((Window) referencia); // agrego la nueva ventana
    }

    @Override
    public void cambiarConArgumentos(String nuevoZul, Map<String, Object> argumentos) {
        argumentos.put("controladoraPrincipal", this);
        if (referencia != null) {
            ventanaPrincipal.removeChild(referencia); // saco la referencia anterior (borro contenido anterior)
        }
        referencia = Executions.createComponents(nuevoZul, null, argumentos);
        ventanaPrincipal.appendChild((Window) referencia); // agrego la nueva ventana
    }
    
}
